package com.qidian.mes.sys.service.impl;

import com.github.pagehelper.IPage;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.qidian.mes.pojo.Dict;
import com.qidian.mes.sys.mapper.DictMapper;
import com.qidian.mes.sys.service.DictService;
import com.qidian.mes.util.pojo.MESResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @Author 戴着假发的程序员
 * @Company 起点编程
 * @Time 2023/10/24 14:22
 * @Description
 */
@Service
@Transactional
public class DictServiceImpl implements DictService {
    @Autowired
    private DictMapper dictMapper;
    @Override
    public MESResult get(Long dictId) {
        return MESResult.ok(dictMapper.get(dictId));
    }

    @Override
    public MESResult list(int page, int limit, Dict dict) {
        // 开启分页 在当前线程中执行下一条SQL的时候就会进行分页。
        PageHelper.startPage(page,limit);
        List<Dict> list = dictMapper.list(dict);
        // 组织一个分页对象。（页码，每页大小，最大页码，数据，总条数）
        PageInfo<Dict> pageInfo = new PageInfo<>(list);
        return MESResult.ok(pageInfo);
    }

    @Override
    public MESResult save(Dict dict) {
        // 查重
        if(dictMapper.getByDictName(dict.getDictName()) != null || dictMapper.getByDictType(dict.getDictType()) != null){
            return MESResult.duplicate("名称或者类型重复");
        }
        return MESResult.updateIsOk(dictMapper.save(dict));
    }

    @Override
    @Transactional
    public MESResult saves(List<Dict> dicts) {
        return MESResult.ok("",dictMapper.saves(dicts));
    }
}
